package main

import (
	"github.com/gin-gonic/gin"
	"github.com/spf13/viper"
	"log"
	"net/http"
	"os"
	"userServer/config"
	"userServer/router"
	"userServer/server"
)

func main() {

	// 加载系统环境变量
	env := os.Getenv("GO_ENV")
	if env == "" {
		env = "development"
	}

	// 初始化配置，指定配置路径（这里假设当前目录）
	err := config.InitConfig(env, "./config")
	if err != nil {
		log.Fatalf("配置初始化失败: %v", err)
	}

	// 初始化数据连接
	err = config.InitDB()
	if err != nil {
		return
	}

	// 初始化连接消息队列
	conn, ch := config.GetAMQPChannel()
	defer func() {
		_ = ch.Close()
		_ = conn.Close()
	}()

	// 启动Gin Web服务
	r := router.SetUserRouter()
	r.GET("/test", func(c *gin.Context) {
		if err := server.SendToQueue(ch, "email", "Hello World!"); err != nil {
			log.Printf("消息发送失败: %v", err)
			c.JSON(http.StatusInternalServerError, gin.H{
				"msg":   "消息发送失败",
				"error": err.Error(),
			})
			return
		}

		c.JSON(http.StatusOK, gin.H{
			"code": 0,
			"data": "",
			"msg":  "消息发送成功",
		})
	})
	err = r.Run(":" + viper.GetString("app.port"))
	if err != nil {
		return
	}
}
